When a non-volatile memory system receives a host read request from a host system, the non-volatile memory system may generate one or more commands to have the data being requested retrieved from the non-volatile memory and loaded into a temporary storage area, such as random access memory (RAM), before the data is sent back to the host. Some memory systems may utilize multiple channels that can transfer data in parallel in order to enhance performance. In many situations, it may be desirable to take advantage of the multiple channels and schedule the selection of the commands in a way that aims to optimize channel throughput. However, in some situations, optimizing for channel throughput may not necessarily provide the best response time for responding to a host read request. As such, it may be desirable to have a non-volatile memory system that adapts to different situations in order to generate a schedule for issuing data transfer commands that yields an expected best overall performance even if such a schedule does not involve maximizing channel throughput.